Alg2source.txt & Alg2.83p
by Jonathan Eastep

This document is best viewed in the ti83pc font, so if you don't have it, get it.  Be sure that word wrap is checked in the Edit menu.

Here's the source.  Feel free to cut and paste from it or get some ideas, but if you do, give me credit either in your program or in an attached document.

StoreGDB GDB1:Full:Normal:a+b:CoordOff:GridOff:AxesOff:LabelOff:ExprOff:FnOff :ClrHome
0Xmin:94Xmax:0Ymax:62Ymin
Lbl DD
Menu("   ALGEBRA II   ","QUAD",AF,"RAD",CP,"SYSTEM",J,"FORM",AG,"LINE",L,"SOLVER",S2,"QUIT",BB
Lbl BB
RecallGDB GDB1
ClrHome
Output(1,1,"
Output(2,1,"  ALGEBRA II  
Output(3,1,"
Output(4,7,"-BY-
Output(6,1,"JONATHAN  EASTEP"
Output(8,1,"01/02/00    v5.1
Return
Lbl AF
ClrHome:ClrDraw
Disp "      QUAD",""
Pause "QUAD SOLVES QUADRATIC EQUATIONS.  PRESS [CLEAR] TO STOP SIMPLIFYING.
ClrHome
Disp "   AX+BX+C=0
Prompt A,B,C
{A,B,C}ABC
If A=0:Goto AF
If A<0:Then:AA:BB:CC:End
ClrHome
Line(0,48,94,48
Line(0,56,94,56
Text(0,39,"(
Text(0,41,")
Line(41,4,42,5
Pxl-Off(5,41
Pxl-Off(4,42
Text(0,44,"uad
Text(57,0,"D=",B-4AC
Text(57,51,"ROOTS:
If not(fPart(A) or fPart(B) or fPart(C
Then
gcd(gcd(A,abs(B)),gcd(abs(B),abs(C)I:A/IA:B/IB:C/IC:4G:AD:abs(BE:abs(CF
Text(16,0,"
If I1:Then:Text(17,G,I,"(":G+4+4iPart(log(10IG:End
Text(17,G,D
G+4iPart(log(10DG
Text(17,G,"x
Text(17,G+4,"    "
Text(15,G+4,2
G+8G
If E0:Then
Text(17,G,"+
If B<0
Text(17,G,"-
Text(17,G+4,E
G+4+4iPart(log(10EG
Text(17,G,"x
G+4G
End
If F0:Then
Text(17,G,"+
If C<0
Text(17,G,"-
Text(17,G+4,F
G+8+4iPart(log(FG
End
If I1:Then:Text(17,G,")":G+4G:End
Text(17,G,"=0
Else
Text(16,0,"
Text(17,4,A,"X+",B,"X+",C,"=0
End
Text(33,24,"SIMPLIFYING...
B-4ACJ
{(B+(J))/(2A),(B-(J))/(2A)}X
SortA(X)
Text(49,0,"X=
Pxl-Off(51,0
Pxl-Off(54,2
15G
If J0:Goto T2
Text(57,74,"2 IMAG
round(X,7)L
real(L(1T
abs(imag(L(2U
For(,1,8
If not(fPart((T*10^)/10))
Goto T
End
Lbl T
If T0
4(T<0)+4(-1)+4iPart(log(10abs(TG
If G>32:32G
15+G+2(fPart(T)0G
abs(imag(L(2U
Text(49,11,"{
If T0
Text(49,15,T
If B=0:15G
Text(49,G,"+",U,"}
Line(G,54,G+2,54
Lbl T2
If J=0:Then
Text(57,74,"1 REAL
Text(49,11,"{",X(1),"}
End
If J>0
Then
Text(57,74,"2 REAL
Text(49,11,"{",X(1),",",X(2),"}
End
abs(JK:int((KP:1S
If fPart(B) or fPart(J) or fPart(2A) or K=0:Then
Text(33,24,"CAN'T SIMPLIFY
Goto D1
End
If fPart(K/2) and not(fPart(P/2):Then:P+1P:2S:End
For(C,P,2,S
If not(fPart(K/C
Goto QY
getKey
If =45:Goto DD
End
Lbl QY
BW
gcd(gcd(abs(W),C),gcd(C,2A)I
W/IW:C/IX:K/CY:2A/IZ
29V:If Z=1:33V:91G
Text(33,24,"                                                 "
If K/C1
Then
95-4iPart(log(10YG
Text(V,G,Y
G-4G
Line(G,V-3,G+2,V-5
Line(G+2,V-4,G+2,V
Line(G+2,V+1,93,V+1
G-4G
End
If J<0:Then:Text(V,G,"":G-4G:End
If (X=1 and Y=1) or X1
Then
G-4iPart(log(XG
Text(V,G,X
G-4G
End
Text(V,G,"+
Line(G,V-5,G+2,V-5
G-4G
If W0:Then
G-4iPart(log(abs(W)))-4(W<0)G
Text(V,G,W
G-4G
End
If Z1:Then
Line(G-1,36,94,36
int((95-G-4iPart(log(Z)))/2)+GD
Text(37,D,Z
End
Text(33,G-5,"x
Text(33,G-1,"=
Lbl D1
ABC(1A:ABC(2B:ABC(3C:B-4ACD
Pause 
Goto DD
Lbl CP
ClrHome
Disp "     RAD",""
Pause "RAD SIMPLIFIES XTH ROOT RADICALS.  PRESS [CLEAR] TO STOP SIMPLIFYING.
ClrHome
Disp "     RAD
Prompt X
If X<2 or fPart(X):Goto R
Input "",J
abs(JK
If fPart(J) or J=0 or (J<0 and not(fPart(X/4:Goto CP
round(XK,0P:1S
If fPart(K/20 and fPart(P/2=0
Then:P+1P:2S:End
For(C,P,2,S
If int(K/C^X)=K/C^X
Goto 0
getKey
If =45:Goto DD
End
Lbl 0
16G:K/C^XZ
If Z1
Then
14-iPart(log(ZG
Output(5,G+2,Z
Output(5,G,"
G-1G
End
If J<0 and fPart(X/4) and not(fPart(X/2
Then
Output(5,G,"
G-1G
End
If (C=1 and Z=1) or C1
Then
G-iPart(log(CG
Output(5,G,C
G-1G
End
If fPart(X/2) and J<0
Output(5,G,"
Pause 
Goto DD
Lbl J
ClrHome
Disp "     SYSTEM",""
Pause "SYSTEM SOLVES A SYSTEM OF TWO OR THREE EQUATIONS FOR THEIR RESPECTIVE VARIABLES.
Lbl MM
ClrHome
Menu("     SYSTEM     ","2 VAR",PT,"3 VAR",PR,"MAIN",DD
Lbl PT
Disp "    AX+BY=C","    DX+EY=F
Prompt A,B,C,D,E,F
[[A,B][D,E]]
If det(Ans)=0
Goto MO
Ans*[[1*C][1*F]]
ClrHome
Disp "    SOLUTION","",AnsFrac
Output(3,1,"X=
Output(4,1,"Y=
Pause 
Goto MM
Lbl PR
ClrHome
Disp "   AX+BY+CZ=D","   EX+FY+GZ=H","   IX+JY+KZ=L
Prompt A,B,C,D,E,F,G,H,I,J,K,L
[[A,B,C][E,F,G][I,J,K]]
If det(Ans)=0
Goto MO
Ans*[[1*D][1*H][1*L]]
ClrHome
Disp "    SOLUTION","",AnsFrac
Output(3,1,"X=
Output(4,1,"Y=
Output(5,1,"Z=
Pause 
Goto MM
Lbl MO
Output(8,3,"NO SOLUTION!
Pause 
Goto MM
Lbl AG
ClrHome
Disp "      FORM",""
Pause "FORM CONVERTS A PARABOLIC FUNCTION BETWEEN EXPANDED AND VERTEX FORMS.
Lbl GJ
ClrHome
Menu("     INPUT?     ","EXPANDED",BC,"VERTEX",BD,"MAIN",DD
Lbl BC
Disp "   Y=AX+BX+C
Prompt A,B,C
If A=0:Goto BC
B/(2A)H:AH+BH+CK
ClrHome
Disp "  Y=A(X-H)+K",AFrac,HFrac,KFrac,"",CFrac
Output(2,1,"A=
Output(3,1,"H=
Output(4,1,"K=
Output(6,1,"Y INT=
Pause 
Goto GJ
Lbl BD
Disp "   Y=A(X-H)+K
Prompt A,H,K
If A=0:Goto BD
2AHB:AH+KC
ClrHome
Disp "   Y=AX+BX+C",AFrac,BFrac,CFrac,"",CFrac
Output(2,1,"A=
Output(3,1,"B=
Output(4,1,"C=
Output(6,1,"Y INT=
Pause 
Goto GJ
Lbl L
ClrHome
Disp "      LINE",""
Pause "LINE CHANGES THE FORM OF A LINE OR FINDS THE EQUATION OF A LINE GIVEN TWO POINTS."
Lbl LL
ClrHome
Menu("     INPUT?     ","Y=MX+B",A,"Y-y=M(X-x)",B,"AX+BY=C",C,"(x,y)(x,y)",D,"MAIN",DD
Lbl A
Disp "     Y=MX+B
Prompt M,B
ClrHome
Disp "    AX+BY=C"
MA:BC:1B
If A<0:Then:MA:1B:CC:End
Disp AFrac,B,CFrac
Output(2,1,"A=
Output(3,1,"B=
Output(4,1,"C=
Pause 
Goto LL
Lbl B
Disp "  Y-y=M(X-x)
Input "y=?",Y
Input " M=?",M
Input "x=?",X
ClrHome
Disp "    AX+BY=C
MA:XA+YC:1B
If A<0:Then:AA:1B:CC:End
Disp AFrac,B,CFrac
Output(2,1,"A=
Output(3,1,"B=
Output(4,1,"C=
If B<0:CC
Disp "     Y=MX+B",MFrac,CFrac
Output(6,1,"M=
Output(7,1,"B=
Pause 
Goto LL
Lbl C
Disp "    AX+BY=C
Prompt A,B,C
ClrHome
A/BM:C/BD
Disp "     Y=MX+B",MFrac,DFrac
Output(2,1,"M=
Output(3,1,"B=
Pause 
Goto LL
Lbl D
ClrHome
Disp " (x,y)(x,y)
Input "x=?",X
Input "y=?",Y
Input "x=?",Z
Input "y=?",W
If X=Z and Y=W
Goto D
If X=Z
Then
Disp "",XFrac
Output(7,1,"X=
Pause 
Goto LL
End
If Y=W
Then
Disp "",YFrac
Output(7,1,"Y=
Pause 
Goto LL
End
ClrHome
(W-Y)/(Z-X)M
MA:A*X+YC:1B
If A<0:Then
MA:1B:CC
End
Disp "    AX+BY=C",AFrac,B,CFrac
Output(2,1,"A=
Output(3,1,"B=
Output(4,1,"C=
If B<0:CC
Disp "     Y=MX+B",MFrac,CFrac
Output(6,1,"M=
Output(7,1,"B=
Pause 
ClrHome
Disp "  Y-y=M(X-x)",YFrac,MFrac,XFrac
Output(2,1,"y=
Output(3,2,"M=
Output(4,1,"x=
Pause 
Goto LL
Lbl S2
ClrHome
Disp "     SOLVER",""
Pause "SOLVER SOLVES AN EQUATION FOR X.  [2nd][ANS] RECALLS THE LAST ENTRY.
Disp ""
Input "0=",Str1
If Str1"Ans"
Str1Str2
ClrHome
Disp "","",""
Output(1,1,"0="
Output(1,3,Str2
G:Input " GUESS=",G
Output(5,2,"X="
StringEqu(Str2,Y)
solve(Y,X,G,{99,99}X
Disp XFrac
Output(5,2,"X=
Pause 
Goto DD